﻿using Model.BusinessModel.OutPut;
using Model.DomainModel;

namespace Infrastructure.IRepository
{
    /// <summary>
    /// 流程节点配置仓储接口
    /// </summary>
    public interface IFlowNodeConfigRepository : IRepository<FlowNodeConfig>
    {
        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="flowNodeConfigs">新增数据</param>
        void BulkInsert(List<FlowNodeConfig> flowNodeConfigs);

        /// <summary>
        /// 获取流程节点配置
        /// </summary>
        /// <param name="flowId">流程id</param>
        /// <param name="flowNodeId">节点id</param>
        /// <returns></returns>
        FlowNodeConfig? GetExpireDate(string flowId, string flowNodeId);

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="flowNodeConfigs">删除数据</param>
        void BulkDeleteByFlowId(List<FlowNodeConfig> flowNodeConfigs);

        /// <summary>
        /// 根据条件过期数据
        /// </summary>
        /// <param name="isExpireRemind">是否存在过期配置</param>
        /// <returns></returns>
        List<FlowNodeExpireDataOutPut> GetExpireConfig(bool isExpireRemind);
    }
}
